home *** CD-ROM | disk | FTP | other *** search
/ PCMania 73 / PCMania CD73_1.iso / sharewar / varios / partial / LIB / ARTICULO.004 < prev    next >
Text File  |  1996-01-05  |  11KB  |  260 lines

  1.                        /*   LA BIBLIA DE  C    */
  2.  
  3. Se inicia un curso de C y C++ que espero que en cierto modo os introduzca en
  4. los lenguajes de alto nivel ( ¿ Que es un lenguaje de alto nivel ?, casi todo
  5. el mundo lo sabe , bueno mi abuela no sé, personalmente lo considero como un
  6. lenguaje mediante el cual el programador puede con una cierta facilidad
  7. programar, aunque al final siempre que se quiera algo extraordinario
  8. se tenga que recurrir a mi querido ensamblador ).
  9.  
  10. Durante tres o cuatro números de la revista, se comentará lo mejor posible
  11. todo lo relacionado con el lenguaje C y sus características, debido a la
  12. semejanza del C y C++, continuaremos con números dedicados especialmente
  13. a la programación Windows, que aunque muchos no sean partidiarios de este
  14. sistema por desgracia es lo que impera [ I love Linux ;-) ].
  15. Bueno sin más dilación al asunto.
  16.  
  17. PROGRAMACION EN C/C++
  18. ---------------------
  19.  
  20. El lenguaje C surge a principios de los años 70 en los laboratorios Bell
  21. de AT&T. El éxito de este lenguaje, entre otras cosas, se debe a su relación
  22. con el sistema operativo UNIX, ya que este fue creado con él. Y en fin todo
  23. comienza aqui ....
  24.  
  25. A POR LA CABECERA DEL PROGRAMA
  26. ------------------------------
  27.  
  28. Comencemos con la programación en C/C++, lo principal para que un programa
  29. en C/C++ funcione es utilizar debidamente la declaración de ficheros INCLUDE.
  30. La instrucción #INCLUDE no tiene por qué estar al principio del programa,
  31. aunque suele ser habitual.
  32. Mediante la instrucción #INCLUDE se cargan librerías de extensión .H que
  33. nos permiten utilizar diferentes instrucciones o incluso las que nosotros
  34. nos hagamos. Existen multitud de librerías que deberan ser declaradas si
  35. utilizamos instrucciones que las precisen, como la stdio.h, la conio.h,
  36. la dos.h, etc.................
  37. Más adelante explicaré con que instrucciones se utiliza cada librería
  38. pero en fin es muy fácil de recordar con práctica.
  39.  
  40. Antes del comienzo del programa en sí, se pueden definir todavía constantes
  41. y variables globales. La diferencia entre estas dos, es que las constantes
  42. toman un valor y no se modifican en todo el programa, sin embargo las
  43. variables sí, ( mucha gente recomienda no utilizar variables globales, pero
  44. personalmente pienso que el programador es el único que debe decidir esto
  45. según sus propósitos ).
  46. Dentro de las constantes globales nos encontramos con la instrucción
  47. #DEFINE que nos permite definir una constante que tendrá el valor
  48. que queramos durante todo el programa, por ejemplo:
  49.  
  50.            #DEFINE PREFIJO 91 
  51.  
  52. de este modo siempre que utilicemos la constante PREFIJO será lo mismo que
  53. poner 91.
  54.  
  55. Por otro lado antes de seguir, es preciso conocer algunas
  56. reglas esenciales para que los molestos errores no nos den dolor de cabeza.
  57.  
  58. ------------------------------ REGLAS --------------------------------------
  59.  
  60. 1º Al declarar una variable el primer carácter deber ser una letra o el guión
  61.    bajo '_', NUNCA UN NUMERO. El resto pueden ser letras, dígitos, etc.
  62.  
  63. 2º Hay identicadores que pueden llevar uno o varios puntos en el nombre
  64.    ( es ideal al definir estructuras ).
  65.  
  66.    Por ejemplo:
  67.                      Departamento.Tecnico
  68.  
  69. 3º El nombre debe tener menos de 31 caracteres, y no se pueden utilizar
  70.    ni palabras reservadas ni caracteres especiales como ñ,@,#, etc.
  71.  
  72. ----------------------------------------------------------------------------
  73.  
  74. Principalmente estas reglas hay que tenerlas en cuenta, luego podríamos
  75. decir que tipo de nombres son más recomendables para según que cosas, por
  76. ejemplo i, si hablamos de un contador, etc, pero esto queda a voluntad del
  77. programador.
  78.  
  79. PALABRAS RESERVADAS
  80. -------------------
  81.  
  82. En este cuadro se muestra casi todas las palabras reservadas ( sino se me
  83. olvida ninguna ) que existen en el lenguaje C
  84.  
  85. -----------------------------------------------------------------------------
  86.  
  87. _asm  auto  _based  break  case  _cdecl  char  const  continue  default
  88.  
  89. do  double  else  enum  _export  extern  _far  _fastcall  float  for  _fortran
  90.  
  91. goto  _huge  if  int  _interrupt  _loadds  long  _near  _pascal  register
  92.  
  93. return  _saveregs  _segmen  _segname  _self  short  signed  sizeof  static
  94.  
  95. struct  switch  typedef  union  unsigned  void  volatile  while  argc  argv
  96.  
  97. _emit  envp  main  _setargv  _setenvp
  98.  
  99. // aprenderemos a utilizarlas //
  100. -----------------------------------------------------------------------------
  101.  
  102. Por último y antes de realizar nuestro primer programa, hablemos un poco
  103. de tipo de datos.
  104.  
  105. TIPO DE DATOS
  106. -------------
  107.  
  108. Los datos simples del lenguaje C, pueden ser ordinales o reales ( o de coma
  109. flotante ).
  110. Mejor que mencionarlos voy hacer un cuadro para que al mismo tiempo conozcaís
  111. su rango o para que me entendaís los máximos o mínimos valores que pueden
  112. procesar. ( Esta tabla está sacada del libro de programación en C de la Guía
  113. Práctica para programadores, editado por Anaya, asi que si os gusta este
  114. lenguaje este libro además de barato no está mal para empezar ).
  115.  
  116. -----------------------------------------------------------------------------
  117. ORDINALES SIMPLES ( enteros )
  118.  
  119. Rango de Valores        Nombre          Bytes           Tipo
  120. ----------------        ------          -----           ----
  121.  
  122. Depende del             Entero            *              int
  123.   Sistema.              Simple
  124.  
  125. "         "             Entero S.
  126.                         sin signo          *             unsigned int
  127.  
  128. -128 a 127              Entero char        1             char
  129.  
  130.   0  a 255              E.C sin signo      1             unsigned char
  131.  
  132. -32768 a 32767          Entero Corto       2             short       
  133.  
  134.      0 a 65535          E.C sin signo      2             unsigned short
  135.  
  136. -2.147.483.648
  137.       a                 Entero Largo       4             long     
  138.  2.147.483.647
  139.  
  140. 0 a 4.264.967.295       E.L sin signo      4             unsigned  long
  141.  
  142. COMA FLOTANTE ( decimales )
  143. -------------
  144.  
  145.  7 dígitos      Real Simple Precision      4             float
  146.  
  147.  15 dígitos             R. Doble . P       8             double
  148.  
  149.  19 dígitos         R. Doble . Largo       10            long double
  150.  
  151. -----------------------------------------------------------------------------
  152.  
  153. Dejamos para otro número Punteros, Arrays, Uniones ,etc...
  154.  
  155. A LO PRACTICO
  156. -------------
  157.  
  158. /* EJEMPLO 1 */
  159.  
  160. En este ejemplo utilizaremos la librería <stdio.h> , esta
  161. librería es primordial para que el programa reconozca los tipos de datos
  162. como int, char, etc. y funciones como printf que permite mostrar un
  163. mensaje en la pantalla y por ejemplo scanf que nos sirve para almacenar
  164. un mensaje, dato, etc, introducido por el teclado ( scanf es más utilizado
  165. por lo menos yo la utilizo, en C++, pero bueno eso que tenemos ganado ).
  166. Es decir esta librería va a ser primordial en todos los programas.
  167. ( es decir, la librería <stdio.h> permite la escritura y lectura de cadenas
  168. ,lecturas en ficheros, etc.... )
  169.  
  170. Entonces comentemos un ejemplo:
  171.  
  172. #include <stdio.h>
  173.  
  174. // incluimos la libreria stdio.h entre los signos <> que indican que el
  175. programa buscará esta librería en el directorio por defecto del programa
  176. normalmente el directorio include, si nosotros deseamos que busque una
  177. librería en otro directorio se lo deberemos indicar con los signos ""
  178. por ejemplo #include "\micasa\pepe\grafos.h"
  179.  
  180. #define PREFIJO  91
  181.  
  182. void main()
  183. { -> se abre el programa
  184.  
  185. // La instrucción main indica que aquí comienza el programa, la instrucción
  186. void le indica que no se le debe devolver ningún valor, antes de continuar
  187. y esto es esencial cualquier línea de código que escribamos en C/C++ debe
  188. finalizar con punto y coma (;) que le indicará al compilador cuando acaba
  189. la instrucción //
  190.  
  191.    // definimos datos //
  192.  
  193.    int Entero=543;
  194.    char Letra='j';
  195.    float Real=33.3;
  196.  
  197.    char nombre[20];  -> [20] indica que el valor máximo de caracteres
  198.                              que admite nombre, aunque esto lo
  199.                              veremos más detenidamente al ver los arrays.
  200.  
  201.    clrscr();    ( borra la pantalla )
  202.  
  203.    printf("Letra = %c \n",Letra);
  204.    printf("Entero = %d \n",Entero);
  205.    printf("Real = %f \n",Real);
  206.  
  207. /// Con la instrucción printf se muestra un mensaje en pantalla, su
  208. funcionamiento es sencillo se pone ("") las comillas indican que se imprimirá
  209. lo que se encuentre entre ellas, el símbolo \n indica un código de salto, es
  210. decir que se salte una línea, en este caso particular que la siguiente
  211. línea de código aparezca en la línea siguiente de pantalla [ que dominio del
  212. lenguaje ;-) ]. Por otro lado nos referimos a la lectura de un dato int con
  213. %d, a uno float con %f, a uno double con %ld, a uno char con %s o con %c de
  214. cadena de caracteres, etc. 
  215.  
  216. Por otro lado, y casi se me olvida, si quieres utilizar la constante
  217. PREFIJO que hemos creado, por ejemplo podríamos poner una línea de código tal
  218. que así:
  219.        printf("Entero= %d \n",Entero+PREFIJO);
  220.  
  221. esta línea suma el valor de la constante PREFIJO (91) al valor de la variable
  222. Entero que es 543, y por tanto su resultado es el que se muestra en pantalla.
  223. ///
  224.  
  225.    printf("Hola Mundo\n");
  226.  
  227. // Mucha gente, entre ellos yo, empezamos programando con la tan conocida
  228. frase en programación hola mundo //
  229.  
  230.    printf("Introduzca su nombre:");
  231.    scanf("%s",&nombre);
  232.  
  233. // La instrucción scanf como ya he mencionado sirve para almacenar un cadena
  234. de caracteres ( números, letras, etc), al igual que en muchas instrucciones
  235. el código a mostrar se encuentra entre las comillas, como se trata de un dato
  236. char indicamos %s , una vez cerradas las comillas se deberá poner una coma
  237. y el nombre de la variable a la cual nos referimos, acompañado por un
  238. ampersand ( & ) delante que indica en cierto modo ( lo veremos más
  239. profundamente ) que se almacene lo introducido por el teclado en esa variable,
  240. dentro por supuesto del rango del dato definido en este caso char. //
  241.  
  242.   printf("\n Hola %s",nombre);
  243.  
  244. // Nos mostrará el mensaje acompañado de lo introducido anteriormente //
  245.  
  246. } -> Cerramos el programa principal
  247.  
  248.  
  249. Bueno por hoy ya está bien, el próximo número más....
  250.  
  251. En el directorio REGALOS\C se encuentra los ejemplos explicados, además
  252. por si acaso no tenéis ningún compilador de C os aconsejo buscar el DJGPP
  253. en Internet, revistas, etc, ya que es un compilador gratuito
  254. como ya sabreís muchos y su funcionalidad no está mal, de todos modos si
  255. no conseguís ninguno comunicármelo y haber que puedo hacer para que os llegue
  256. aunque sea el DJGPP.
  257.  
  258.                                                                 HANDLER
  259.  
  260.